package j20251118;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

public class Demo2 {

    public static void main(String[] args) {
        //添加元素
        List<Integer> list1=new LinkedList<>();
        list1.add(1);//尾插
        list1.add(2);
        list1.add(3);
        System.out.println(list1); // [1, 2, 3]
        list1.add(0,4);//头插
        System.out.println(list1); // [4, 1, 2, 3]
        List<Integer> list2=new LinkedList<>();
        list2.addAll(list1);//尾插list1的所有元素
        System.out.println(list2); // [4, 1, 2, 3]


        //删除元素
        list2.remove(0);//删除头元素
        System.out.println(list2); // [1, 2, 3]
        list2.remove(2);//删除索引为2的元素
        System.out.println(list2); // [1, 2]
        list1.removeAll(list2);//删除list1中所有也在list2中的元素
        System.out.println(list1); // [4, 3]

        //查询元素
        System.out.println(list2.get(0)); // 1
        System.out.println(list2.indexOf(2)); // 1
        System.out.println(list2.contains(2)); // true
        System.out.println(list2.size()); // 2

        //操作元素
        list2.set(0,10);//将索引为0的元素设置为10
        System.out.println(list2); // [10, 2]
        List<Integer> list3=list1.subList(0,2);//获取索引为0到2的元素（不包含2）
        System.out.println(list3); // [4, 1]

        //遍历元素
        for(int i=0;i<list2.size();i++){
            System.out.print(list2.get(i)+" ");
        }
        System.out.println();

        for(int i:list2){
            System.out.print(i+" ");
        }
        System.out.println();

        //使用迭代器遍历元素
        Iterator<Integer> it=list2.iterator();
        while(it.hasNext()){
            System.out.print(it.next()+" ");
        }
        System.out.println();
    }
}
